# f=open("./临时文件/被操作的文件.txt","r",encoding="utf-8",errors='ignore') # open() 函数用于打开一个文件，并返回一个对应的文件对象,此方法需要显示关闭文件f.close()，通常更推荐下面一种用法

# 只读模式
with open("./临时文件/被操作的文件.txt", "r", encoding="utf-8", errors='ignore') as f: # 这行代码使用了 with 语句和上下文管理器（context manager）来打开文件。上下文管理器确保了文件会在代码块结束时自动关闭，即使中间发生了异常也是如此
  #  print(f) # print(f) 会打印这个文件对象的表示，而不是文件的内容
   print("读3个字符",f.read(3))
   print("读当前行剩余内容",f.readline())
   print("指针位置",f.tell())
   print("读下一行",f.readline())
   print("指针位置",f.tell())
   print(f.read())  # 打印文件的剩余的所有内容
   f.seek(0,0) # 移动指针到文件开头,第1个参数表示要移动到的位置，第2个参数表示移动的位置类型，0表示从文件开头开始移动，1表示从当前位置开始移动，2表示从文件末尾开始移动
   print()
   print("---------------------------","指针位置",f.tell())
   print(f.read())
   print("---------------------------","指针位置",f.tell())
   
# 写入模式 覆盖
with open("./临时文件/被操作的文件.txt", "w", encoding="utf-8", errors='ignore') as f: 
   f.write("这是写入的内容")

# 新建模式，存在会报错
from datetime import datetime
# 获取当前时间并格式化为字符串
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# 将时间戳加入文件名
filename = f"./临时文件/被操作的文件_{timestamp}.txt" # 这里的 f 表示这是一个 f-string，使得你可以直接在字符串内部使用花括号 {} 来插入变量 timestamp 的值。当这个字符串被求值时，{timestamp} 会被变量 timestamp 的当前值所替代,相当于js中的模板字符串
with open(filename, "x", encoding="utf-8") as f: 
   f.write(f"这是写入的内容{timestamp}")

# 追加模式
with open("./临时文件/被操作的文件.txt", "a", encoding="utf-8") as f: 
   f.write("\nhello World")
   f.writelines(["\n中华人民共和国", "\n重庆"])

# 二进制模式
with open("./临时文件/被操作的文件.txt", "rb") as f:
   print(f.read())

